﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Collections.Generic;
using Caliburn.Micro.BikeWizard.Data;

namespace Caliburn.Micro.BikeWizard.Services
{
    public interface IBikeOptionService
    {
        IEnumerable<BikeTypeOption> BikeTypes { get; }
        IEnumerable<FrameSizeOption> FrameSizes { get; }
        IEnumerable<PartsGroupOption> PartsGroups { get; }
        IEnumerable<ExtrasOption> Extras { get; }

        IResult GetAvailableBikeTypes();
        IResult GetAvailableFrameSizes();
        IResult GetAvailablePartsGroups();
        IResult GetAvailableExtras();

        IResult Add(params BikeTypeOption[] bikeTypes);
        IResult Add(params FrameSizeOption[] frameSizes);
        IResult Add(params PartsGroupOption[] partsGroups);
        IResult Add(params ExtrasOption[] extras);

        IResult ClearData();
    }
}
